package com.woniu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu.model.JunkType;
import com.woniu.service.param.AddJunkTypeParam;
import com.woniu.service.param.ChangeFatherParam;
import com.woniu.service.param.ChangeStatusParam;
import com.woniu.service.param.PageParam;

import java.util.List;

/**
 * <p>
 *  垃圾类型服务类
 * </p>
 *
 * @author 吴彦祖
 * @since 2024年05月23日
 */
public interface JunkTypeService extends IService<JunkType> {

    /**
     * 添加垃圾类型
     * @param param
     */
    void addJunkType(AddJunkTypeParam param);

    /**
     * 更改垃圾类型
     * @param param
     */
    void changeJunkType(ChangeFatherParam param);

    /**
     * 加载所有垃圾类型
     * @param param
     */
    Page<JunkType> loadAllJunkType(PageParam param);

    /**
     * 修改垃圾状态
     * @param param
     */
    void changeStatus(ChangeStatusParam param);
    /**
     * 根据id查找是否存在(仅父级)
     * id 垃圾种类id
     */
    JunkType getByIdFather(Integer id);

    /**
     * 用户查看垃圾种类
     * list 所有垃圾种类集合
     */
    List<JunkType> checkJunkType();

    /**
     * 根据垃圾id查询垃圾单位
     * String 单位
     */
    String getUnitById(Integer id);


    /**
     * 根据id集合查找垃圾种类
     * list 垃圾种类id集合
     */
    List<JunkType> getByIdList(List<Integer> ids);
}
